CouchDB এর Replication একটি শক্তিশালী বৈশিষ্ট্য যা একাধিক সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজেশন এবং ব্যাকআপ নিশ্চিত করতে ব্যবহৃত হয়। Replication CouchDB-তে eventual consistency বজায় রাখে, অর্থাৎ ডেটা একাধিক সার্ভারে ধীরে ধীরে সিঙ্ক্রোনাইজ হয়। CouchDB-তে দুটি প্রধান ধরনের রেপ্লিকেশন ব্যবহৃত হয়: Continuous Replication এবং One-time Replication।
1. Continuous Replication (নিরবচ্ছিন্ন রেপ্লিকেশন)
Continuous Replication হল একটি প্রক্রিয়া যেখানে ডেটা এক সার্ভার থেকে অন্য সার্ভারে স্বয়ংক্রিয়ভাবে এবং অবিরত সিঙ্ক্রোনাইজ হয়। এটি ডেটাবেসের মধ্যে live synchronization তৈরি করে, যেখানে নতুন পরিবর্তনগুলি (ডকুমেন্ট যোগ, আপডেট, বা মুছে ফেলা) স্বয়ংক্রিয়ভাবে এবং নিয়মিত এক সার্ভার থেকে অন্য সার্ভারে স্থানান্তরিত হয়।
Continuous Replication এর বৈশিষ্ট্য:
- Real-Time Sync: ডেটা পরিবর্তন হলেই তা real-time তে সিঙ্ক্রোনাইজ করা হয়।
- অবিরাম সিঙ্ক্রোনাইজেশন: সার্ভারের মধ্যে ডেটার পরিবর্তন চালিয়ে যাওয়ার সাথে সাথে এটি অবিরত সিঙ্ক্রোনাইজড থাকে।
- স্বয়ংক্রিয় রেপ্লিকেশন: একবার কনফিগার হয়ে গেলে, কনটিনিউয়াস রেপ্লিকেশন স্বয়ংক্রিয়ভাবে চলে, এবং সার্ভার বন্ধ না হওয়া পর্যন্ত চলতে থাকে।
কনফিগারেশন উদাহরণ:
একটি continuous replication সেটআপ করতে, আপনি replicator document ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেখানো হলো:
{
"_id": "replicator/continuous-replication",
"source": "http://source_server:5984/source_db",
"target": "http://target_server:5984/target_db",
"continuous": true,
"create_target": true
}
এখানে:
- source: সোর্স ডাটাবেসের URL।
- target: টার্গেট ডাটাবেসের URL।
- continuous: এটি যখন
trueহবে, তখন continuous replication সক্রিয় হবে।
Benefits of Continuous Replication:
- High Availability: যেহেতু ডেটা সর্বদা সিঙ্ক্রোনাইজড থাকে, একটি সার্ভার ডাউন হলে অন্য সার্ভার থেকে দ্রুত অ্যাক্সেস পাওয়া যায়।
- Fault Tolerance: একাধিক সার্ভারে ডেটা কপি থাকায় সার্ভার ক্র্যাশ হলে ডেটা হারানোর ঝুঁকি কমে যায়।
2. One-time Replication (এককালীন রেপ্লিকেশন)
One-time Replication হল একটি প্রক্রিয়া যেখানে একটি নির্দিষ্ট সময়ে এক সার্ভার থেকে আরেক সার্ভারে ডেটা সিঙ্ক্রোনাইজ করা হয়। এটি একটি manual sync প্রক্রিয়া, যা একবারের জন্য রান করা হয় এবং তারপর স্বয়ংক্রিয়ভাবে চালু থাকে না। সাধারণত, এটি ব্যাকআপ নেওয়ার জন্য বা একটি ডাটাবেসের একটি কপি তৈরি করার জন্য ব্যবহৃত হয়।
One-time Replication এর বৈশিষ্ট্য:
- Single Event Sync: এটি একটি এককালীন ডেটা সিঙ্ক্রোনাইজেশন প্রক্রিয়া যা শুধুমাত্র একবার সম্পন্ন হয়।
- ব্যাকআপ: ডেটাবেসের একটি নির্দিষ্ট মুহূর্তের কপি তৈরি করতে এককালীন রেপ্লিকেশন ব্যবহৃত হয়।
- কমপ্লেক্স সেটআপ ছাড়া সহজ: এটি স্বয়ংক্রিয় রেপ্লিকেশন কনফিগারেশন ছাড়া সরাসরি একটি রেপ্লিকেশন চালায়।
কনফিগারেশন উদাহরণ:
একটি one-time replication সেটআপ করতে, নিচে একটি উদাহরণ দেওয়া হলো:
{
"_id": "replicator/one-time-replication",
"source": "http://source_server:5984/source_db",
"target": "http://target_server:5984/target_db",
"continuous": false
}
এখানে:
- source: সোর্স ডাটাবেসের URL।
- target: টার্গেট ডাটাবেসের URL।
- continuous: যখন
falseথাকবে, তখন এটি one-time replication চালাবে।
Benefits of One-time Replication:
- ব্যাকআপের জন্য উপযুক্ত: এটি ব্যাকআপ এবং ডেটা এক্সপোর্টের জন্য সুবিধাজনক।
- এককালীন ট্রান্সফার: একবার সিঙ্ক্রোনাইজ হলে, আর কোন পরিবর্তন হবে না, যা অনেক সময়ের জন্য স্থির ডেটাবেস সিঙ্ক্রোনাইজেশনে উপযুক্ত।
3. Continuous এবং One-time Replication এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Continuous Replication | One-time Replication |
|---|---|---|
| রেপ্লিকেশন ফ্রিকোয়েন্সি | অবিরত (Real-time Sync) | এককালীন (Single Event) |
| উপযুক্ত পরিবেশ | High Availability, Real-time Sync | ব্যাকআপ, এককালীন ডেটা কপি তৈরি |
| অ্যাক্সেসের সময় | সার্ভার চালু থাকা পর্যন্ত চলতে থাকে | একবার সম্পন্ন হলে থেমে যায় |
| ব্যবহার | ডেটার সিঙ্ক্রোনাইজেশন এবং ফিল্টারিং | ব্যাকআপ, ডেটা ট্রান্সফার |
| কনফিগারেশন | কমপ্লেক্স, স্বয়ংক্রিয় | সহজ, ম্যানুয়াল |
4. Replication Error Handling
CouchDB রেপ্লিকেশন কনফিগারেশনে ত্রুটি হলে, এটি error রিপোর্ট করবে। আপনি replication status মনিটর করতে পারেন এবং ত্রুটিগুলি সনাক্ত করতে পারেন:
Replication Status চেক করার জন্য:
GET http://localhost:5984/_replicatorReplication Errors দেখার জন্য:
GET http://localhost:5984/_replicator/replicator/replication_id
উপসংহার
Continuous Replication এবং One-time Replication CouchDB তে ডেটা সিঙ্ক্রোনাইজেশন করার দুটি প্রধান পদ্ধতি। Continuous Replication ব্যবহার করে আপনি সার্ভারগুলির মধ্যে ডেটা সিঙ্ক্রোনাইজেশন অবিরত রাখতে পারেন, যা সিস্টেমের উচ্চ availability নিশ্চিত করে, অন্যদিকে One-time Replication সাধারণত ব্যাকআপ বা ডেটা স্থানান্তরের জন্য উপযুক্ত, যেখানে শুধুমাত্র একবার ডেটা সিঙ্ক্রোনাইজ করতে হয়।
Read more